export interface MenuState {
    id?: number
    /**
    * 描述
    */
    description?: string;
    /**
     * 是否导航栏显示：1可以2不可
     */
    is_navbar?: number;
    /**
     * 是否可用：1可以2不可用
     */
    is_use?: number;
    /**
     * 名称
     */
    name?: string;
    /**
     * 路径
     */
    path?: string;
    /**
     * 上级id
     */
    parentId?: number;
    /**
     * 路由
     */
    route?: string;
    /**
     * 排序
     */
    sort?: number;
    /**
     * 1:导航，2:页面
     */
    type?: number;
    menuButton?: MenuButtonState[]
}

export interface MenuButtonState {
    id?: number
    key?: string;
    /**
     * 菜单id
     */
    menuId?: number;
    /**
     * 名称
     */
    name?: string;
}
/**
 * 查找并更新树状数据中的目标节点
 * @param {Array} tree - 树数据
 * @param {number} targetId - 要查找的目标节点 ID
 * @param {Object} updates - 要更新或添加的数据
 * @returns {boolean} - 如果找到并更新节点，返回 true；否则返回 false
 */
export function updateNodeInTree(tree: any, targetId: any, updates: any) {
    for (const node of tree) {
        // 找到目标节点，更新数据
        if (node.id === targetId) {
            Object.assign(node, updates);
            return true;
        }

        // 如果有子节点，递归查找
        if (node.children) {
            const found = updateNodeInTree(node.children, targetId, updates);
            if (found) return true;
        }
    }

    return false; // 未找到目标节点
}
export const columns: F.TableColumns[] = [
    {
        title: '名称',
        key: 'name',
        dataIndex: 'name',
        align: 'center',
    },
    {
        title: 'key',
        key: 'key',
        dataIndex: 'key',
        align: 'center',
    },
    {
        title: 'api',
        key: 'api',
        dataIndex: 'api',
        align: 'center',
    },
    {
        title: '操作',
        dataIndex: 'action',
        key: 'action',
        align: 'center',
        slots: {
            customRender: 'actionRender',
        },
        fixed: 'right',
    },
]